/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package repository;

import beans.Pedido;
import interacesRepository.IRepositoryPedido;
import java.util.Collection;
import connection.ConnectionBD;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author dlvcpe
 */
public class RepositoryPedido implements IRepositoryPedido {

    private static RepositoryPedido instancia;

    private RepositoryPedido() {
    }

    public static RepositoryPedido getInstancia() {
        if (instancia == null) {
            instancia = new RepositoryPedido();
        }
        return instancia;
    }

    public void inserir(Pedido pedido,String funcLogin, Integer pjId, Integer produtoId) {
         try {

            Statement stmt = ConnectionBD.getInstance().createStatement();
            String linhaSQL = new String();
            
            linhaSQL = ("INSERT INTO pedido_tb (idpedido, datapedido, quantidade, prazoentrega, datarecebimento, preco, ref_funcionario, "
                    + "ref_fornecedor, ref_produto) "
                    + "VALUES ("+ pedido.getId()+", to_date('"+ pedido.getDataPedido()+"','DD/MM/YYYY'),"+pedido.getQuantidade()+","+
                    "to_date('"+pedido.getPrazoDeEntrega()+"','DD/MM/YYYY')"+
                    ",to_date('"+pedido.getDataRecebimento()+"','DD/MM/YYYY'),"+pedido.getPreco()+"," +
                    "(SELECT REF(F) FROM funcionario_tb F WHERE F.login = '"+funcLogin+" ')," +
                    "(SELECT REF(J) FROM pessoajuridica_tb J WHERE J.idfornecedor ="+ pjId+" )," +
                    "(SELECT REF(P) FROM produto_tb P WHERE P.idproduto = "+ produtoId+")"
                    + ")");

//             if (Main.paramentros.getImprimirSQL() == 1){
//                System.out.println(linhaSQL);
//            }
             System.out.println("Linha SQL "+ linhaSQL);
                stmt.execute(linhaSQL);

            } catch (SQLException ex) {
                Logger.getLogger(RepositoryPessoaFisica.class.getName()).log(Level.SEVERE, null, ex);
            }

        
        
        
//         try {
//            Statement stmt = ConnectionBD.getInstance().createStatement();
//            String linhaSQL = new String();
            
//CREATE OR REPLACE TYPE pedido_tp AS OBJECT(
//	idpedido INTEGER,
// 	datapedido DATE,
//	quantidade INTEGER,
//	prazoentrega DATE,
//	datarecebimento DATE,
//	preco INTEGER,
//	ref_funcionario REF funcionario_tp,
//  	ref_fornecedor REF fornecedor_tp,
//	ref_produto REF produto_tp);
            
//            linhaSQL = ("insert into funcionario_tb(login, nome, senha, email, sexo, dtnasc, telefone_nt, endereco_nt ) "
//                    + "values ('"
//                    + funcionario.getLogin() + "', '"
//                    + funcionario.getNome() + "', '"
//                    + funcionario.getSenha() + "', '"
//                    + funcionario.getEmail() + "', '"
//                    + funcionario.getSexo() + "', " +//SEXO
//                    funcionario.getDataNascimento() + ", " +//to_date('06/06/1986','DD/MM/YYYY')
//                    "telefone_nt_tp(" + stringTelefone + "),"
//                    + "endereco_nt_tp( endereco_tp('"
//                    + funcionario.getEndereco().getRua() + "', '"
//                    + funcionario.getEndereco().getBairro() + "', '"
//                    + funcionario.getEndereco().getCidade() + "', '"
//                    + funcionario.getEndereco().getEstado() + "', '"
//                    + funcionario.getEndereco().getCep() + "' )) )");
//
//            System.out.println("Linha SQL " + linhaSQL);
//            stmt.execute(linhaSQL);
//
//        } catch (SQLException ex) {
//            Logger.getLogger(RepositoryFuncionario.class.getName()).log(Level.SEVERE, null, ex);
//        }
    }

    public void excluir(Pedido pedido) {
        
    
    
    }

    public void alterar(Pedido pedido) {
    
    
    }

    public Pedido consultarClienteID(Integer id) {
    
        
        return null;
    
    
    }

    public Collection consultarnome(String nome) {
        return null;
    }

    public Collection consultartodos() {
        return null;
    }

    public int totalCadastrados() {
        return 0;
    }

    @Override
    public Pedido consultarPedidoID(Integer id) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

   
}
